home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / setl2 / readme < prev    next >
Text File  |  1993-07-20  |  12KB  |  259 lines

  1.  
  2.                                 SETL2
  3.                                 =====
  4.  
  5. This directory contains all the distribution files for the SETL2
  6. programming system.  It's implemented on a number of machines and all of
  7. the binaries can be found in the various files here.  As usual, this
  8. entire system is provided free of charge, but WITHOUT ANY WARRANTY.  Use it
  9. at your own risk.
  10.  
  11. There are separate distribution files for each supported system, but this
  12. README file covers all of them.  Look through what follows for the system
  13. in which you are interested, and ignore the rest.  You should find the
  14. following systems supported:
  15.  
  16.    MS-DOS (versions 3.1 and higher)
  17.    Extended MS-DOS (80286 and higher processors with extended memory)
  18.    Apple Macintosh (with the MPW environment)
  19.    Sun 3 (SunOS 4)
  20.    Sun 4 (SunOS 4)
  21.    IBM RS/6000 (AIX 3.1)
  22.    DEC RISC product line (Ultrix 4.0)
  23.    DEC Vaxen (Mt. Xinu Unix)
  24.    DEC Vaxen (VMS)
  25.  
  26. Please report any bugs or problems to:
  27.  
  28.    Kirk Snyder
  29.    Courant Institute of Mathematical Sciences
  30.    New York University
  31.    251 Mercer Street
  32.    New York, NY  10012
  33.  
  34.    e-mail:  snyder@cs.nyu.edu
  35.  
  36. PLEASE SEND ME AN EMAIL MESSAGE IF YOU FTP THE SETL2 SYSTEM.  This is not
  37. intended to restrict access in any way, just to let me know who is using
  38. it.  I keep a mailing list of users to send out occasional notices, and
  39. if you don't let me know you're using SETL2 then I can't put you on the
  40. list.
  41.  
  42. I expect this archive to move around Aug-Sept, 1992.  I will send out
  43. a notice to anyone who sends me email.  I will finish my Ph.D. this year
  44. and get a job elsewhere.  The SETL2 system will move with me.  If
  45. anyone hears of an academic job available for someone interested in 
  46. programming language design and implementation I'd appreciate it if you'd
  47. let me know.
  48.  
  49. Thanks
  50.  
  51. -- Kirk
  52.  
  53. MS-DOS
  54. ======
  55.  
  56. MS-DOS is a somewhat uncomfortable environment for SETL2, due to the
  57. severe memory limitation.  You will find two distinct sets of distribution
  58. files here.  One for systems with 8086 processors or no more than 640K of
  59. memory, the other for systems with an 80286 or higher model processor and
  60. some EXTENDED (not expanded) memory.
  61.  
  62. If your computer has an 8086 (or 8088) processor, then you should get the
  63. files dos-1.zoo, dos-2.zoo, dos-3.zoo, and dos-4.zoo, along with zoo.exe
  64. and zoo.doc, if you don't already have them.  Install all of these files
  65. on your disk, then execute
  66.  
  67.    zoo x// dos-1
  68.    zoo x// dos-2
  69.    zoo x// dos-3
  70.    zoo x// dos-4
  71.  
  72. This will create a setl2 directory with several subdirectories. The first
  73. thing you'll want to do is print the documentation (it's distributed in
  74. Postscript form), then follow the installation instructions.
  75.  
  76. The big weakness of the DOS implementation is the 640K barrier.  SETL2
  77. programs can easily consume much more memory than that.  There is another
  78. set of files called dos286-1.zoo, dos286-2.zoo, dos286-3.zoo, and
  79. dos286-4.zoo which may or may not help.  This implementation uses a piece
  80. of software called a DOS extender to run programs in 286 protected mode,
  81. which allows access to as much as 16M of extended memory.  DOS extenders
  82. don't really fit comfortably in DOS, perhaps in part because IBM and
  83. Microsoft would much rather you buy OS/2.  But in the cases in which they
  84. do work they are fairly nice.
  85.  
  86. The version supplied here is written by Lattice and distributed with their
  87. 80286 development system.  There are competing products, but the wonderful
  88. thing about Lattice's is that I can distribute it with SETL2 without
  89. paying Lattice a royalty.  To my knowledge this is the only DOS extender
  90. which is royalty-free.  Anyway, here's how you install it.
  91.  
  92. Under the bin directory, you should find the programs "tune.exe" and
  93. "ex286.exe".  Tune will examine your system and customize the ex286
  94. program for your system.  Make the bin directory current and execute
  95. tune.  Tune will ask you to press some keys, AND MAY HANG YOUR SYSTEM.
  96. This hanging is normal.  Just reboot and try again.  Tune keeps track
  97. of what it was doing in files, so will continue from where it left off.
  98.  
  99. After you do all this, move all the files in the bin directory to some
  100. directory in your path.  Before using SETL2 execute ex286 to install the
  101. DOS extender.  When you're finished execute "ex286 rem" to remove it.  You
  102. may want to create batch files which do this for you.  Other than this
  103. complication the instructions in the documentation should work as usual.
  104.  
  105. If you'd like to find out if all this is working, try the test286 program
  106. included on the bin directory.  Basically, it keeps consuming memory until
  107. an abort.  If it aborts at the same place with and without the extender
  108. installed, then something didn't work.
  109.  
  110. A caveat: DOS extenders are somewhat risky and fragile things.  If your
  111. system is unusual it might not work, due to conflicts with TSR's, device
  112. drivers, etc.  DON'T BOTHER ME WITH REPORTS ABOUT THIS.  It seems to me
  113. that Lattice has done a great job on the DOS extender, but I'm not about
  114. to support it for them, particularly since I don't charge for this.  If
  115. you desperately need the DOS extender to work and are having severe
  116. trouble, then buy the Lattice C 286 Development System, and complain
  117. directly to Lattice.  They have top notch support, and the system is very
  118. nice, so you probably won't be wasting your money.  If you work for a
  119. school then call them and ask about their educational discounts before
  120. calling the mail order companies.  They really are nice people to deal
  121. with, in spite of the flames they've been getting on the net about their
  122. dongle.
  123.  
  124. Macintosh
  125. =========
  126.  
  127. The Macintosh implementation is distributed as a `binhex'ed stuffit
  128. archive.  To decompress you'll need stuffit, which is available on many
  129. archives.
  130.  
  131. The Macintosh implementation requires the Macintosh Programmer's
  132. Workbench, which you will have to get from the Apple Program Developers
  133. Association, which is owned by Apple.  Unfortunately, you'll have to join
  134. APDA first.  I'm sorry about this, but I'm unwilling to abandon the
  135. command line, and Apple doesn't provide one without buying MPW.
  136.  
  137. In the stuffit file you'll find MPW tool versions of the compiler and
  138. interpreter, and a number of scripts which make MPW a fairly comfortable
  139. environment for SETL2.  We are currently working on extensions to allow
  140. access to the Mac Toolbox (still in MPW, though).  If you'd like to be
  141. informed when that is available, send me email.
  142.  
  143. Unix
  144. ====
  145.  
  146. Unix is clearly the most comfortable environment for SETL2.  We get a
  147. command line and all the memory we can afford, without standing on our
  148. head.  The system is distributed as a compressed tar file, and I think it
  149. should be obvious from the names on the archive which you should get.
  150.  
  151. One hopefully nice addition in the Unix environment is a SETL2 mode for
  152. Gnu Emacs, which is included in each file.  I'm still working on this,
  153. but I think what I've got so far will be useful so I'm including it now.
  154. It assumes that you are familiar enough with Emacs LISP to change
  155. keyboard maps.  I'm not about to try to come up with an assignment of
  156. keystrokes which won't conflict with other packages and will be available
  157. on all systems.  The keymap provided is the one I use, but that's certain
  158. to be terrible for anyone else (I don't hesitate to change standard
  159. keymaps, so the keystrokes I use in the SETL2 mode conflict spectacularly
  160. with standard keymaps).  Anyway, here are the functions available.  All
  161. you have to do is bind them to keystrokes you like.
  162.  
  163.    setl2::compile-buffer        => Compile the current buffer, saving
  164.                                    first if necessary.  The cursor will
  165.                                    be placed at the first error if there
  166.                                    is one.
  167.  
  168.    setl2::next-error            => Move the cursor to the next error,
  169.                                    displaying the message in the
  170.                                    minibuffer.
  171.  
  172.    setl2::previous-error        => Move the cursor to the previous
  173.                                    error, displaying the message in the
  174.                                    minibuffer.
  175.  
  176.    setl2::install-template      => Begin entering one of the following
  177.                                    structures:
  178.  
  179.                                          program
  180.                                          package
  181.                                          class
  182.                                          procedure
  183.                                          lambda
  184.                                          for
  185.                                          while
  186.                                          until
  187.                                          loop
  188.                                          if
  189.                                          case
  190.  
  191.                                    After you initiate this, start typing
  192.                                    the structure you want.  The macro will
  193.                                    try to complete the keyword as far as
  194.                                    it can.  When it has a complete keyword
  195.                                    it will enter the structure.  For
  196.                                    example, to enter "program" you would
  197.                                    actually type "prg".
  198.  
  199.    setl2::next-component        => The structures above all have some
  200.                                    variable stuff.  The previous function
  201.                                    writes the skeleton, this one jumps
  202.                                    to places where you need to fill in
  203.                                    things.
  204.  
  205.    setl2::pull-comment          => Find the next comment, then look for
  206.                                    all successive lines with comments
  207.                                    in the same column, like this:
  208.  
  209.                                       --  this is a two
  210.                                       --  line comment.
  211.  
  212.                                    Yank out the text of the comment, and
  213.                                    install it in a scratch buffer, in
  214.                                    word processing mode.  The width of
  215.                                    the buffer depends on the column in
  216.                                    which the comment was found.
  217.  
  218.    setl2::replace-comment       => Only works in a comment buffer
  219.                                    described in the previous function.
  220.                                    removes some extra blanks around the
  221.                                    comment and replaces the orginal.
  222.  
  223.    setl2::new-comment           => Enter a -- at the cursor postion,
  224.                                    back up and call pull-comment.
  225.  
  226.    setl2::wrap-in-comment       => Prefix all lines between point and
  227.                                    mark with --.
  228.  
  229.    setl2::expose-comment        => On all lines between point and mark
  230.                                    beginning with --, remove the --.
  231.  
  232.    setl2::inline-comment        => Jump to column 40 on the current line,
  233.                                    and enter "-- ".  I use this for
  234.                                    describing variables in a var.
  235.  
  236. VMS
  237. ===
  238.  
  239. The VMS implementation is about the same as Unix, and also includes the
  240. SETL2 mode for Emacs.  The only complication here is in the distribution
  241. format.  I'm not really a VMS expert, but I talked to one and was told
  242. that there isn't really a standard format for distributing VMS files.  I
  243. used zoo, since that's my favorite.  You can get it on many archives, but
  244. not this one.
  245.  
  246. You'll have to use defines to allow this to be called normally.  Something
  247. like this:
  248.  
  249.    stll :== $ disk$cs:[?????]stll.exe
  250.    stlc :== $ disk$cs:[?????]stlc.exe
  251.    stlx :== $ disk$cs:[?????]stlx.exe
  252.  
  253. You'll have to change the file names to whatever you normally use, of
  254. course.
  255.  
  256.  
  257.  
  258.  
  259.